CastleFynn - a Final Fantasy II text editor
v1.0
by Chaos Rush

This program can edit the text in Final Fantasy II for the NES/Famicom.
It supports both single-offset compiling and dynamic compiling - that
means that it can recompile an entire text bank with a single click
of a button which will maximize free space efficiency. Pointers
are automatically adjusted.

This program supports:
* Final Fantasy II - Demiforce translation
* Final Fantasy II - Refurbished translation
* Final Fantasy II - Japanese version

This program does NOT support the English Prototype version.
-----------------------------------------------------------------------

HOW TO USE:
1. Click on 'Opn ROM', then find your Final Fantasy II ROM and open it.
2. Under the Table drop-down menu, select the appropriate table.
3. Select the text bank and message number you would like to edit.
4. Once you have edited your text, click on either, "Compile Single Messsage"
to compile the message into the ROM at that given offset, or click on,
"Compile Selected Bank" to recompile the entire selected text bank.

-----------------------------------------------------------------------

WHAT DOES EACH BUTTON DO?

* "Open Last Loaded ROM" - opens the ROM file that's indicated in config.ini,
which is in the Resources folder.

* "Open ROM" - opens the file select menu. Find your ROM and select it.

* "Table: " drop-down menu - the currently selected text table used to
interpret the text data. The default table is, "Yours", which is identical
to the Refurbished table, but can be edited by editing the tbl files in the
Resources folder.

* "View Text Table" - opens up a new window that simply shows you the
current contents of the text table used to interpret the text data.

* "Bank #" drop-down menu - select one of these to view the respective
text bank's messages.

* "Message #" drop-down menu - select one of these to view a message.

* "Save Changes to Memory" - will temporarily save what you have typed
while the program is still open. This button does NOT compile anything
to the ROM. All it does is that whatever changes you made will be
retained if you view another message in the same bank and then go back
to the one you edited.

* "Import Bank" - imports entire text bank from an external text file
located in the Resources folder.

* "Export Bank" - exports entire text bank to an external text file
located in the Resources folder.

* "Compile Single Message" - compiles the currently typed message at
the offset that is listed by "Message Offset".

* "Compile Selected Bank" - compiles the entire text bank, with the
first message being compiled at the offset listed by "Bank Offset",
and the rest of the messages being compiled and inserted immediately
after the previous message was compiled.

* "Four Lines [up]" - shift the text preview four lines up.

* "Four Lines [down]" - shift the text preview four lines down.

* "Update Text Preview" - refresh the text preview box with the changes
you have made to the currently selected message number.
-----------------------------------------------------------------------
OTHER INFORMATION:

* When compiling a bank, the first message will be compiled at the offset
listed by "Bank Offset", and the rest immediately following. Message 1
of every bank is the same as the Bank offset. The Bank Space is the total
amount of bytes that the text bank is allowed to take up. You are free to
edit this in the config.ini file in the Resources folder. Please be careful
with it though, as this program clears out the entire text bank with 0xFF
bytes before doing bank compiling because it's helpful to see how many
bytes in the text bank you have left.

* All name codes are contained in the "Misc. 1" bank. To use a name code,
surround the key term with brackets. For example,
[Hilda] will compile as bytes 0x18 0xEF, which will show up in-game as,
"Hilda". For using item name codes put, "Item_" before the name of the
item (brackets are still required). Item name codes are only supported
for Misc. 1 messages 1-14, but internally any message in the "Misc. 1"
text bank can be used as a name code if you have the right byte codes.

* To compile a learnable Keyword for use of Final Fantasy II's keyword
system, use this format:

[$[XX][keyword]]

where XX = number of 8x8 tiles (aka number of letters) that the position
of the word is from the left side of the message box.

* Note that modifying the Japanese table file won't affect how it shows
up in the text editor because I had to hardcode parts of it, due to the
IDE I'm using having issues with showing Japanese text properly when
reading it from an external text file.